
#ifndef SafeWaitHandle_h
#define SafeWaitHandle_h

#include <System/IntPtr.h>

namespace Riccsson
{
	namespace Win32
	{
		namespace SafeHandles
		{
			// Summary:
			//     Represents a wrapper class for a wait handle.
			class SafeWaitHandle sealed
				//: public SafeHandleZeroOrMinusOneIsInvalid
			{
				// Summary:
				//     Initializes a new instance of the Microsoft.Win32.SafeHandles.SafeWaitHandle
				//     class.
				//
				// Parameters:
				//   existingHandle:
				//     An System.IntPtr object that represents the pre-existing handle to use.
				//
				//   ownsHandle:
				//     true to reliably release the handle during the finalization phase; false
				//     to prevent reliable release (not recommended).
				public: SafeWaitHandle(Riccsson::System::IntPtr existingHandle, bool ownsHandle);

				protected: override bool ReleaseHandle();
			};
		}
	}
}

#endif